// miniprogram/pages/lucky-draw/result/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    title: '抽签活动',
    drawTime: '',
    winnerCount: 0,
    winners: [],
    animationTimer: null,
    result: null,
    imageUrl: '/assets/images/share-poster.png'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const eventChannel = this.getOpenerEventChannel();
    // 监听acceptDrawResult事件，获取上一个页面传递的抽签结果数据
    eventChannel.on('acceptDrawResult', (data) => {
      console.log('接收到抽签结果数据：', data);
      
      const now = new Date();
      const formattedTime = `${now.getFullYear()}-${this.padZero(now.getMonth() + 1)}-${this.padZero(now.getDate())} ${this.padZero(now.getHours())}:${this.padZero(now.getMinutes())}`;
      
      // 为每个中奖者添加animate属性，用于逐个显示动画
      const winnersWithAnimation = data.winners.map(winner => {
        return {
          ...winner,
          animate: false
        };
      });
      
      this.setData({
        title: data.title || '抽签活动',
        drawTime: formattedTime,
        winnerCount: data.winners.length,
        winners: winnersWithAnimation
      });
      
      // 页面加载完成后，开始播放中奖者入场动画
      this.startAnimation();
    });

    if (options.result) {
      this.setData({
        result: JSON.parse(options.result)
      })
    }
  },

  /**
   * 开始中奖者入场动画
   */
  startAnimation() {
    // 清除可能存在的定时器
    if (this.data.animationTimer) {
      clearTimeout(this.data.animationTimer);
    }
    
    const winners = this.data.winners;
    let index = 0;
    
    // 使用定时器，逐个为中奖者添加动画效果
    const timer = setInterval(() => {
      if (index >= winners.length) {
        clearInterval(timer);
        return;
      }
      
      // 更新对应索引的中奖者，添加动画属性
      this.setData({
        [`winners[${index}].animate`]: true
      });
      
      index++;
    }, 200); // 每200毫秒显示一个中奖者
    
    // 保存定时器，以便在需要时清除
    this.setData({
      animationTimer: timer
    });
  },

  /**
   * 重新抽签
   */
  redraw() {
    wx.navigateBack({
      delta: 1
    });
  },

  /**
   * 分享功能
   */
  onShareAppMessage() {
    return {
      title: '抽签结果',
      path: '/pages/lucky-draw/result/index?result=' + JSON.stringify(this.data.result),
      imageUrl: this.data.imageUrl
    };
  },

  /**
   * 工具方法：将数字补零为两位数
   */
  padZero(num) {
    return num < 10 ? '0' + num : num;
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 页面卸载时清除定时器
    if (this.data.animationTimer) {
      clearTimeout(this.data.animationTimer);
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  }
})